home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Experimental BBS Explossion 3
/
Experimental BBS Explossion III.iso
/
games
/
tetrisp.zip
/
TETRISP.DOC
< prev
next >
Wrap
Text File
|
1993-10-22
|
28KB
|
514 lines
[<──────────────────<──────<────<─<<─<<[]>>─>>─>────>───────>─────────────────>]
<<─> Tetris Pro <─>>
[<──────────────────<──────<────<─<<─<<[]>>─>>─>────>───────>─────────────────>]
┌───∙· ·∙───────────────∙· For Support Call ·∙──────────────∙· ·∙───┐
│ GENIAAL BBS 2 Line 1: +31-2294-2959 SysOp : Atilla Meijs │
│ Line 2: +31-2294-3154 CoSysOps: Jaap Verboon & Me │
│ Programmers Support Line 1: +31-4920-13558 SysOp : Peter Raaphorst │
└─∙· ·∙────────────∙· ·∙────────────∙· ·∙───────────∙· ·∙─┘
─ Programmer ─
Michiel Ouwehand
─ Support ─
Tijs Mul (Beta Tester)
Carlo Vogelsang (Sound Routines)
Kees Spoelstra (Lots of ASM Stuff)
Atilla Meijs (MOD's, GIF and lending of GUS)
─ Graphics ─
Various GIF CD's
─ Sound ─
Various nameless MODule files
DJ Digital (Contact me!)
─ Contact me at ─
(InterNet) michiel@progsup.tess.wlink.nl
(FreeNet) 2:2802/108.11
Write a message to Co-SysOp #2 at GENIAAL BBS 2
Call me at: (+31)-2294-2738 (or FAX me here)
"Tetris" is a registered trademark of Elorg.
─
I hope the author of the program/copyright holder will not mind
me using the name Tetris for my game. My intentions are good, I charge
no fee, please let me live.
─
──- A -───────────────────────────────────────────────────────────────────────
███████████████████│ ████████████▓│ █████│ ████████████│ █████│
███████████████████│ █████████▓▓▓▓▓▓│ █████│ █████████████▓▓▓│ █████│
██▓▓▓│ ▓▓▓▓▓│ ▓▓▓▓▓│ ██▓▓▓│ ██▓▓▓│ ▓▓▓▓▓│ ███▓▓│
▓▓▓▓▓│ ▓▓▓▓▓│ ▓▓▓▓▓│ ▓▓▓▓▓│ ▓▓▓▓▓│ ▓▓▓▓▓│ ▓▓▓▓▓│
▓▓▓▓▓│ ▓▓▓▓▓│ ▓▓▒▒▒│ ▓▓▓▓▓│ ▓▓▓▓▓│ ▓▓▒▒▒│ ▓▓▓▓▓│
▓▓▓▒▒│ ▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒│ ▓▓▒▒▒│ ▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒│ ▓▓▓▒▒│
▒▒▒▒▒│ ▒▒▒▒▒▒▒▒▒▒▒▒▒│ ▒▒▒▒▒│ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│ ▒▒▒▒▒│
▒▒▒▒▒│ ▒▒▒▒▒│ ▒▒▒▒▒│ ▒▒▒▒░│ ▒▒▒▒▒│ ▒░░░░│ ▒▒░░░│
▒▒▒░░│ ▒▒▒░░│ ░░░░░│ ▒░░░░│ ▒▒░░░│ ░░░░░│ ░░░░░│
░░░░░│ ░░░░░│ ░░░░░│ ░░░░░│ ░░░░░│ ░░░░░│ ░░░░░░░░░░░░░░│
░░░░░│ ░░░░░│ ░░░░░│ ░░░░░│ ░░░░░│ ░░░░░│ ░░░░░░░░░░░░░░│
────────────────────────────────────────────────────────────────────- GAME -──
Tetris Pro - Documentation
1. Introduction
Welcome to the Tetris Pro documentation, this small document is split up
into a few pieces. The next part you'll find is the installation
description, then you'll find more background info about the program,
and where you can get it.
Note: I didn't create most of the graphics or the sound. I'm a pro-
grammer not a graphics/sound artist. I ripped most from CD's or from
our own BBS and if I found who made the picture or composed the MOD,
I will say it and thank this person, however, most people don't. Of
course, the Tetris Pro specific stuff, like the intro screens etc.
were created by me (as you can clearly see).
First, let it be clear that my main goal was not be make a new Tetris
with all kinds of dooh-dahs. I designed one I liked most, just like the
old original Tetris (yes, the CGA/EGA one) but then with some nice
graphics and a bit sound etc. Every game-reviewer/tester who says my
program 'doesn't add anything to the original' didn't read my docs. At
least she/he should say 'the author didn't choose to add any dooh-dahs
because he thought it would decrease the game fun, I do (or do not)
agree with him'.
History:
Tetris Pro started as a simple Tetris clone in MCGA on a 386SX-16. It
read a simple decompressed picture and had no background, no sound, no
nothing really and was _VERY_ buggy. It was written in GFA and was quite
fast. Then I got in SVGA support (directly to ET4000 and compatibles)
and the backgrounds. Backgrounds were uncompressed and the program was
quite (read: very, horribly, unacceptably) slow... Then I moved the
pictures to the PCX format, making the program even slower and almost
increased the size. Removed a lot of bugs though.
Time warp: Couple of months later I started looking into C++, so I
thought, what the heck, it looks nice, why not program in it? So, it
took me a week or so to fully convert Tetris Pro which than ran with a
very vanilla interpretation of VESA. By moving to C++ I speeded up the
code quite a lot. Removed a lot of bugs too. Still slow, so I learnt
Assembler and sped up thing a lot more (thanks to Kees). I immensly sped
up my VESA routines and screen updates, moved the files to the GIF
format and added four levels making ten. I made the datadisk structure,
moved the compression to a slightly altered ARJ file and made my VESA
routines even more neat. Then it was time to move decompression into
inline assembler, still slow, but a good preparation for the real stuff.
When I finally got all the decompression stuff into inline assembler I
was to face the biggest challenge of programmin: Moving it to Outline
assembler. So, I did (in a month or two) and finally, I got this ARJ
decompression thing working on one single segment. Still slow, because
I just made it to work, not to be fast. So I went optimizing, and THAT
was fun, I made the code nearly 5x as fast as the original. The quick
386+ LEA's really helped me out! So, I approached Planhold BV for spon-
soring. They didn't react at first, but my persistence finally made
them call me. And it seemed my Tetris didn't even work there. The pro-
blem was the granularity of a SpeedSTAR 24X, Pro, Stealth etc. This
problem was also comen on ATI cards. So, I changed my VESA routines
to work with different granularities too. No sound until this point, so
I called in Carlo's help to get me some really good music, and it
worked! Now, most of the popular cards are supported, ever seen a PD
game do this before? Note: The Gravis UltraSound is a special case. It's
consumation of system time is below a percent at ANY rate (it ALWAYS
plays at 44 KHz, stereo, 16 bit). However, it is adviced that you
upgrade your card to at least 512 Kb. All the other cards mix at
approximately 6% at 22KHz and 11% or 10% at 44 KHz. DAC's and PC-Honkers
are slower, dunno the speed, depends on your computer's components.
This is all benchmarked at my 386 DX-40. I've got some ideas to make it
even faster. You might see the GLX module player as a stand-alone
program in the near future. It's going to be the fastest player ever.
The Renaissance claim to be faster, that'd be nice, some competition!
No, really, GLX can be made faster, I've got some ideas to make it
even faster. However, the Renaissance's code only works at 22KHz. I
think that's a shame, sound starts getting good at 36KHz and finally
sound very good when it reaches 44Khz. Bytheway, the GLX code I use
in Tetris Pro will be different from the stand-alone player. The
stand-alone player will have far better detection of cards and handling.
When a card isn't found I just play it anyway, why? Well, some emulated
modes (by other downwards compatible cards) fail detection, but DO work,
so choose the right card. Because Planhold wasn't really very optimis-
tic for sponsoring me, I contacted VOBIS A'dam II. They were quite
enthousiastic from the beginning and friendly too, so I decided to let
VOBIS sponsor me instead of Planhold BV.
Tetris Pro - Documentation
2. Installation
OK, here are some quick docs on installing Tetris Pro. If
everything is allright there will be an archive, named TETRISP.xxx
(xxx can be ARJ, ZIP, etc.). This archive must be extracted with
directory creation (which means using "ARJ x TETRISP" or "PKUNZIP
TETRISP -d"). Now, you should have the Tetris Pro program file
"TETRISP.EXE", the Tetris Pro setup program "SETUP.EXE", Tetris Pro's
datafile "TETRISP.DAT" and a directory called "DDISKS". Without
DataDisks Tetris Pro is useless, so if somebody forgot to give you one
you should get one as soon as you can. If you don't know how you can get
them, there is a note on this further in the docs, so just read on.
Ok, presuming you HAVE got one or more datadisks, dump the *.DD
files in the DDISKS directory. Run the setup program, choose sound card
and direct palette mode. Run Tetris Pro and enjoy... Really, if Tetris
Pro kicks up without errors you'll probably be ready for hours of fun
playing Tetris.
─∙· Oh nOoOo, TrOuBlEsHoOtInG PaRt ·∙───────────────────────────────────
Well, this is the troobleshooting part. Ok, there area couple of types
of errors. They can be divided into four groups:
1. - Errors caused by the unavailability of drivers.
2. - Errors caused by the inexistense of system requirements.
3. - Errors caused by the corruption of datafiles.
4. - Warnings.
Please, when you get an error, look it up in the errors list and
continue reading below here.
1. - VESA Driver not loaded
When you haven't got a VESA driver, get one from your supplier,
most suppliers will be happy to help you, or check out some
BBS'es, they have a lot too.
For those who not know, a VESA driver is a driver needed to access
the SVGA card in a compatible way. If you haven't got SVGA or your
SVGA card has only 256Kb of RAM, forget it, buy a better one. You
need at least 512Kb of RAM on your SVGA card.
Some of the newer SVGA cards have the VESA-BIOS-EXTENSIONS, also
know as VBE hardware-matically. It's just a part of their VGA BIOS
I've seen it on a (as I recall) Cirrus Logic board and a Trident.
1. - XMS Driver not present
Easy solution, put HIMEM.SYS in your config.sys and remove
EMM386.EXE, QEMM386.SYS and other memory managers.
2. - Not enough free XMS memory.
If you haven't got 4Mb of RAM on your computer, bad luck, you need
them, go buy new ones. If you have got 4Mb and still get this
warning, you probably have SMARTDRV (SmartDrive), SUPERPCK (Super
PCKwik), NCACHE (Norton Cache), PCACHE (PC Cache) or sort-a-like
program in your CONFIG.SYS, remove it or decrease the number that
follows it until Tetris Pro wants to run.
2. - VESA Mode 101h not supported.
VESA Mode 101h is the SVGA mode 640x480x256. If yout VESA driver
doesn't want to put your computer in that mode you are most like-
ly to have only 256Kb of screen-memory on your SVGA board. Tetris
Pro simply doesn't work then. Buy an SVGA card with at least 512Kb
of RAM on it, but most preferably 1Mb or even 2Mb.
3. - Bad Huffman code / CRC Error
These errors are detected while decompression the data files and
mean that your datadisk or other data file is corrupted. Get a
new one!
4. - Windows warning, EMM386 Warning, V86 Warning, Virtual-DMA warning
These are all warning because you are running some kind of program,
which thinks it is needed that she/he is the allmighty memory-mana-
ger. These memory managers are made so that programs who can't
really get along with memory can do so. E.g. older programs run
better with QEMM, because QEMM gives them more base memory. How-
ever Tetris Pro'd like to do its own management. It doesn't need
those managers. These managers do all kind of dirty tricks to get
rid of limits, like placing to processor into V86 mode and
changing the IOPL (I/O Priviledge Level). Now THEY control inter-
rupts, Ins & Outs, DMA, etc. This makes your computer slower and
because these programs aren't 100% 'clean' written they might
crash your computer or say that an exception error occured which
they generated themselves (I've seen it happen). Also, some
managers destroy the upper part of the E?? registers of the 386,
QEMM 5.x as I recall did this. That's why I advice to remove these
filthy programs which are polluting your memory. Only install
HIMEM.SYS or HIDOS.SYS for DR-DOS as I recall.
Tetris Pro - Documentation
3. Frequently asked questions
Allright, here is a small summary of frequently asked questions,
if you've got a problem, read these first. (Frequently given anwsers are
also listed)
Q: GUS Doesn't work after Windows or GUSMOD
A: Well, dunno why it doesn't, just run UltrInit once and it's fixed.
Q: I have an SVGA card with 512Kb but don't seem to get Tetris Pro
running, he keeps mentioning this VESA driver thing. What does it
mean and what does it do?
A: A VESA driver is a driver which is made for your graphics card, it's
a driver which tells program HOW to get along with your graphics
card. In order to run Tetris Pro you need one. Contact your dealer or
manufacturer of the graphics card for more info. Also, there are some
of them included in the archive VESA. Try one of those first.
Q: I have an SB 2.x clone but the sound is real 'cracky'. How do I get
rid of it?
A: Switch to 22Khz, 44KHz is somewhat buggy on some SB 2.x clones.
Q: I can't have the sound FX on only, why?
A: Technical difficulty. It isn't much fun anyway.
Q: Sometimes the screen fades out to change level and just stays black.
Why does he do that?
A: Well, could be anything. My program just doesn't like your computer.
I've seen it happen to people who load high mouse drivers. I think
it's because a high-loaded program is under the control of the XMS
manager who I am then working with. Try remove things from upper
memory and removing such redundant programs as QEMM, EMM386 etc.
Q: My screen 'flickers' when changing from/to levels, why?
A: Your SVGA card doesn't like to have the palette changed 'on the fly',
run SETUP and change Palette mode.
Q: Tetris Pro exits with an error message which has something to do with
XMS handles or something? What's that?
A: An XMS handle is needed by Tetris Pro to access your machine's extra
memory. When your computer runs out of them you're probably multi-
tasking or something. Try to put this line in you CONFIG.SYS
DEVICE=C:\DOS\HIMEM.SYS /NUMHANDLES=128
This makes sure you've got dozens of XMS handles so you won't run out
of them as easy. When this doesn't help, remove EMM386, QEMM386 or
sort-a-like memory managers.
Q: My screen 'trashes up'. It seems like the lines are partly on the
wrong part of the screen. Why does he do that?
A: It's probably a bug in your VESA driver. Some VESA drivers have the
odd habbit to say that there are 1024 bytes on every screen line
even though there are only 640 bytes present. Tetris Pro surely
can't help it. It's the VESA driver's fault. Get another VESA
driver.
It might also be that your VESA driver thinks it's necesarily to say
that it hasn't got a 64K granularity, but some other one. This re-
sults into partial screens. All this trouble is because Tetris Pro
strictly follows the VESA rules (at least, I think it does) and so,
when your VESA driver is wrong, other program might run because they
just ignore what that driver tells them, and I really follow it.
Q: Sometimes the blocks just drop down while I am not doing anything,
why does he do that?
A: Well, it's a hardware problem. Because the dafault timer only allows
a precision of 1/18.2 ticks a second and the maximum speed at which
the blocks go down is more than 18.2 blocks down a second I put timer
channel 0 into a high-precision mode, allowing incredibly precise
timing. However, it occasionally runs backwards. I was very surprised
too when the blocks just dropped down. It seems that just before the
timer's going to overflow it runs backwards and goes berserks. My
program first just stopped and hung when it happened. Now you've got
the problem you are asking about. I can't wait for it to happen and
then display a message "Waiting..." and wait for it to pass because
it sometimes just occasionally happens, no overflow! I have seen
some software having the same problem. But some seem to don't mind
at all. It's probably fixable but I don't know how. Contact me if
you have a solution!
Tetris Pro - Documentation
──>> Stop reading now if you just want to play a game <<──
4. For programmers only
Hiho programmers! Some info about Tetris Pro. Tetris Pro has been
made with Borland C++ 3.1 and TASM 3.1. The original concept I started
about a year ago, well, no, less than a year ago, was written in GFA
BASIC and ran in 320x200x256 but the decompression of PCX pictures was
too slow, so I impulsively decided to learn C. I didn't know how to
program in ASSEMBLER so I learnt it in a day or two and began writing
some VESA routines here and there. Now, a month or three later I'm
beginning to feel at home in ASM and thanks to the Intel 386
Programmers Reference Guide I'm now optimizing the ARJ decompression
code with fast 386 LEA's. It's a real speeda' right now and I think
it will be even faster when I've finally got rid of all those CALL's
to FillBuf. The source code will be available a couple of months
AFTER Tetris Pro is brought out and spread to avoid people cloning
it and bringing out their version with my code. I went through great
pains to convert and optimize the ARJ code, so please use it when
you've got hold of it. Currently, the source is a rough 400Kb of
assembly and about 150Kb of C(++) code. Most of the assembly code is
GLX, the MODule player. GLX will be brought with the code as an OBJ
file I think. You may then use this as a library with you own code,
like STMIK and GOLDPLAY or DSMI, but then for free.
I would like to address programmer's to some docs provided with GNU C++
Here's a quote:
──>> Snip snip, quote <<───────────────────────────────────────────────────────
Protect Your Freedom---Fight ``Look And Feel''
"This section is a political message from the League for Programming
Freedom to the users of GNU CC. It is included here as an expression
of support for the League on the part of the Free Software Foundation."
Apple and Lotus are trying to create a new form of legal monopoly: a
copyright on a class of user interfaces. These monopolies would cause
serious problems for users and developers of computer software and
systems. Xerox, too, has tried to make a monopoly for itself on window
systems; their suit against Apple was thrown out on a technicality, but
Xerox has not said anything to indicate it wouldn't try again.
Until a few years ago, the law seemed clear: no one could restrict
others from using a user interface; programmers were free to implement
any interface they chose. Imitating interfaces, sometimes with changes,
was standard practice in the computer field. The interfaces we know
evolved gradually in this way; for example, the Macintosh user interface
drew ideas from the Xerox interface, which in turn drew on work done at
Stanford and SRI. 1-2-3 imitated VisiCalc, and dBase imitated a
database program from JPL.
Most computer companies, and nearly all computer users, were happy with
this state of affairs. The companies that are suing say it does not
offer ``enough incentive'' to develop their products, but they must have
considered it ``enough'' when they made their decision to do so. It
seems they are not satisfied with the opportunity to continue to compete
in the marketplace---not even with a head start.
If companies like Xerox, Lotus, and Apple are permitted to make law
through the courts, the precedent will hobble the software industry:
Gratuitous incompatibilities will burden users. Imagine if each
car manufacturer had to arrange the pedals in a different order.
Software will become and remain more expensive. Users will be
``locked in'' to proprietary interfaces, for which there is no real
competition.
Large companies have an unfair advantage wherever lawsuits become
commonplace. Since they can easily afford to sue, they can intimidate
small companies with threats even when they don't really have a case.
User interface improvements will come slower, since incremental
evolution through creative imitation will no longer be permitted.
Even Apple, etc., will find it harder to make improvements if
they can no longer adapt the good ideas that others introduce, for
fear of weakening their own legal positions. Some users suggest that
this stagnation may already have started.
If you use GNU software, you might find it of some concern that user
interface copyright will make it hard for the Free Software Foundation
to develop programs compatible with the interfaces that you already
know.
To protect our freedom from lawsuits like these, a group of programmers
and users have formed a new grass-roots political organization, the
League for Programming Freedom.
The purpose of the League is to oppose new monopolistic practices such
as user-interface copyright and software patents; it calls for a return
to the legal policies of the recent past, in which these practices were
not allowed. The League is not concerned with free software as an
issue, and not affiliated with the Free Software Foundation.
The League's membership rolls include John McCarthy, inventor of Lisp,
Marvin Minsky, founder of the Artificial Intelligence lab, Guy L.
Steele, Jr., author of well-known books on Lisp and C, as well as
Richard Stallman, the developer of GNU CC. Please join and add your
name to the list. Membership dues in the League are $42 per year for
programmers, managers and professionals; $10.50 for students; $21 for
others.
The League needs both activist members and members who only pay their
dues.
To join, or for more information, phone (617) 492-0023 or write to:
League for Programming Freedom
1 Kendall Square #143
P.O. Box 9171
Cambridge, MA 02139
You can also send electronic mail to league@@prep.ai.mit.edu.
Here are some suggestions from the League for things you can do to
protect your freedom to write programs:
Don't buy from Xerox, Lotus or Apple. Buy from their competitors or
from the defendants they are suing.
Don't develop software to work with the systems made by these companies.
Port your existing software to competing systems, so that you encourage
users to switch.
Write letters to company presidents to let them know their conduct
is unacceptable.
Tell your friends and colleagues about this issue and how it threatens
to ruin the computer industry.
Above all, don't work for the look-and-feel plaintiffs, and don't
accept contracts from them.
Write to Congress to explain the importance of this issue.
House Subcommittee on Intellectual Property
2137 Rayburn Bldg
Washington, DC 20515
Senate Subcommittee on Patents, Trademarks and Copyrights
United States Senate
Washington, DC 20510
(These committees have received lots of mail already; let's give them
even more.)
Express your opinion! You can make a difference.
──>> Snip snip, quote <<───────────────────────────────────────────────────────
I totally agree with the words said above. We are programmers, not
lawyers. We are here to make a good game, an intuitive database, a
quick spreadsheet, or a users-friendly BBS-Program. The interface we
use is something which helps programmers to achieve their goals.
Restricting people to clone, improve or change is nonsense, it is as
much nonsense as a grocer going to court because another grocer sells
peaches too or sueing him because he also uses a shop as a medium
to sell the products. I would like to push other programmers in the
direction too, to copy this quote I took and express your opinion.
Tetris Pro - Documentation
5. About the Gravis UltraSound
Bytheway, thanks to the Renaissance (and in particular Joshua Jensen)
for giving out the source of GUSMod. Our GUS driver for GLX had a bug
and we couldn't find it. After taking a peek at GUSMod I found it. I
forgot the shut the voice up before playing a new instrument on it.
To make things clear, I am not using GUSMod, I'm just inspired by it,
I read a text by Joshua Jensen once in which he said he wasn't pleased
because people copied his code and said THEY made it. Because of that
type of people normal programmers can't anymore learn from each other.
This type of lamer should be banned!
Anyway, the Gravis UltraSound is the *BEST* SoundCard for IBM PC's
and is almost the cheapest. It now replays at somewhat more than 44 KHz
16Bit stereo on every 386 with a GUS. I haven't yet got time to remove
all of the UltraClicks yet, but isn't THAT anoying anyway. Maybe I will
release a fix when I find out how to do it later.
Being support of this great card we know how good it is. The Gravis
UltraSound is the programmer's dream and a must for the GamePlayer. If
you'd like to know more about it, contact me at the adresses in the
beginning of this document.
Tetris Pro - Documentation
6. Updates
To make it clear, I think I will release an update later. Undoubtedly
there are bugs in Tetris Pro, however, I haven't discovered all of them
naturally. All the bugs I get info on and can figure out how to remove
will be featured in a next version. I do not plan to make more than one
update.